package org.xiaoxin.onecoupon.framework.idempotent;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 幂等注解，防止消息队列消费者重复消费消息
 * @author xiaoxin
 * 2025/5/9
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NoMQDuplicateConsume {
   /**
    * 设置防重令牌前缀
    */
   String keyPrefix() default  "";
   /**
    * 通过spel表达式生成唯一的key
    */
   String key();
   /**
    * 设置防重令牌过期时间，单位为秒，默认为1小时
    */
   long keyTimeout() default  3600L;
}
